#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time  : 2022-06-13 22:26
# @Author: Hehuyi_In
# @File  : get_book_content.py

import requests
from bs4 import BeautifulSoup


def get_book_url(conf_file):
    f = open(conf_file)
    url_list = f.read().splitlines()
    f.close()
    return url_list


def get_book_content(url_list, book_name):
    f = open(book_name, 'a', encoding='utf-8')
    for url in url_list:
        print(url)
        resp = requests.get(url)

        # ① 将页面源码（参数1）交给bs4处理，得到bs4对象；参数2说明传入的是html，使用html.parser解析
        bs4 = BeautifulSoup(resp.text, "html.parser")

        # ② 定位 <div id="articlecon" 部分，标签（参数1）是div，属性（参数2）是id="articlecon"
        # 如之前所说，属性可以有多种写法：
        # 非关键字写法：
        total_contant = bs4.find("div", id="articlecon")
        # print(total_contant)
        # 关键字写法，这里我们用 class="articlecon"（因为id不是python关键字，所以这里如果写id_是找不到的）
        # total_contant = bs4.find("div", class_="articlecon")
        # attrs参数写法，这里注意要写成字典格式
        # total_contant = bs4.find("div", attrs={"id":"articlecon"})

        # ③ 小说内容全在p标签里，因此要用find_all全部匹配出来。这里注意它有两层p标签，所以还要先find一次p标签。
        # 第一层<p>标签
        p_contant = total_contant.find("p")
        # 第二层<p>标签
        contant_list = p_contant.find_all("p")
        for contant in contant_list:
            f.writelines(contant.getText() + '\n')
    f.close()


if __name__ == '__main__':
    conf_file = "url_list.txt"
    book_name = "我在仙宗当神兽.txt"
    url_list = get_book_url(conf_file)
    get_book_content(url_list, book_name)